This application relates to the field of electronic communication and more particularly to the field of multiband digital signal communication.
Conventional multicarrier digital communication is a technique for transmitting and receiving digital signals using a plurality of carriers (subchannels) having different frequencies. Each of the subchannels is used to communicate a different portion of the signal. The transmitter divides the signal into a number of components, assigns each component to a specific one of the carriers, encodes each of the carriers according to the component assigned thereto, and transmits each of the carriers. The receiver decodes each received carrier and reconstructs the signal.
The maximum amount of information that can be encoded onto a particular subcarrier is a function of the signal to noise ratio of the communication channel with respect to that subcarrier. The signal to noise ratio of a communication channel can vary according to frequency so that the maximum amount of information that can be encoded onto one carrier may be different than the maximum amount of information that can be encoded onto another carrier.
Bit loading is a technique for assigning bits to subchannels according to each subchannel""s signal to noise ratio. A bit loading algorithm provides a bit allocation table that indicates the amount of information (in bits) that is to be encoded on each of the carriers. That is, for a multicarrier communication system with J carriers, a bit allocation table B[j] indicates, for each j=1 to J, the amount of information that is to be encoded onto each of the J carriers.
Shaping the transmission to match the channel characteristics is known. For example, a technique known as xe2x80x9cwater pouringxe2x80x9d was introduced by Gallager in 1968 (xe2x80x9cInformation Theory and Reliable Communicationxe2x80x9d, page 389) and by Wozencraft in 1965 (xe2x80x9cPrinciples of Communication Engineeringxe2x80x9d, pp. 285-357). Water pouring involves distributing the energy of the transmission signal according to the channel frequency response curve (a plot of the signal to noise ratio as a function of frequency). The frequency response curve is inverted and the available signal energy (the xe2x80x9cwaterxe2x80x9d) is xe2x80x9cpouredxe2x80x9d into the inverted curve so that more of the energy is distributed into those portions of the channel having the highest signal to noise ratio. In a multicarrier system in which the transmission band is divided into numerous subchannels, throughput can be maximized by putting as many bits in each subcarrier as can be supported given the xe2x80x9cwater pouringxe2x80x9d energy and a desired error rate.
Other techniques for allocating bits among carriers of a multicarrier signal are known. U.S. Pat. No. 4,731,816 to Hughes-Hartogs discloses a bit loading scheme where one bit at a time is incrementally added to each subcarrier until a maximum rate is achieved. Subcarriers that require the least amount of additional power to support an additional bit are selected first.
U.S. Pat. No. 5,479,477 to Chow et al. discloses a bit loading scheme that is capable of either maximizing the throughput or maximizing the margin for a particular target data rate. Unlike Hughes-Hartogs, Chow et al. determines the bit loading table one carrier at a time (rather than one bit at a time). In Chow et al., all the carriers are sorted in descending order according to the measured signal to noise ratio. The initial subchannels that are selected are the ones capable of carrying the most bits. Using the Chow et al. scheme to maximize the data rate provides a bit loading table similar to that provided by the Hughes-Hartogs algorithm.
In order for the receiver to correctly interpret the received data, both the transmitter and the receiver must use the same bit loading table. When the bit loading algorithm is performed during the initialization phase of communication, the resulting bit allocation table is communicated between the transmitter and receiver to ensure that both the transmitter and the receiver are using the same bit loading table. However, in the event that the communication channel signal to noise ratio characteristics change during communication, it may be necessary to update/change the bit allocation table to more appropriately match the transmission with the channel characteristics. However, when the bit allocation table is changed, it is necessary to synchronize use of the new table with both the transmitter and the receiver. If the transmitter and the receiver use different bit allocation tables at any time, the communications link will suffer significant errors in those subchannels in which the bit allocation tables do not agree.
In addition, determining a new bit allocation table can be time consuming, especially if the bit loading algorithm is computationally intensive, such as that disclosed by Hughes-Hartogs where the bit allocation table is constructed one bit at a time. If the bit allocation table is to be calculated many times during communication between the transmitter and receiver, then spending a relatively long amount of time recalculating the bit allocation table (and hence not communicating data) is undesirable.
One solution is to simply not change the bit loading table after initialization. However, this may be unacceptable in cases where the communication channel signal to noise ratio changes during data transmission. Accordingly, it is desirable to be able to determine a bit loading tableirelatively quickly and to be able to synchronize use of the new table by the transmitter and the receiver.
In accordance with the present invention, a pair of bit allocation tables are maintained at both the transmitter and the receiver. These tables are updated as needed, using measurements of the signal to noise ratio performed on known data transmitted to the receiver in a control frame separate from the data frame. The transmitter signals the receiver as to which of the two tables is to be used for subsequent communication. Preferably, this is done by transmitting a flag from the transmitter to the receiver at some point during the data transmission; this causes the receiver to thereafter switch the bit loading table it is using for communication to synchronize with the corresponding table at the transmitter.
In the preferred embodiment of the invention, although the invention is not restricted thereto, 69 xe2x80x9cframesxe2x80x9d of 245.5 microseconds duration each are used to form a xe2x80x9csuperframexe2x80x9d of 16.94 milliseconds. The first frame of each superframe comprises a control frame that is used to transmit a standard (known) data set from the transmitter to the receiver; the remaining frames contain data. The receiver measures the signal to noise ratios of the received data in this frame for each of the channels and uses this to calculate channel bit allocations for subsequent data transmissions. In practice, it has not been found necessary to calculate the signal to noise ratios for each and every superframe, although this can, of course, be done. Rather, we have found it sufficient for most data transmissions to measure the signal to noise ratios of the channels over several frames, average them, update the bit allocation tables based on the resultant values, and use the bit allocations tables so determined over hundreds or thousands of subsequent frames.
The bit allocation table updating is performed by comparing the measured signal to noise ratio (SNR) in each channel with a constellation signal to noise ratio SNR[cj], that has been augmented by a trial noise margin M, SNRa[cj]=SNR[cj]+M. The constellation signal to noise ratio, SNR[cj], specifies the number of bits cj (xe2x80x9cconstellation sizexe2x80x9d) that can be transmitted over a channel j given a specific signal to noise ratio SNPj, where cj may vary, for example, from 1 to 15. The value of the margin M is dependent on the difference between the amount of data (i.e., number of bits) that can be transmitted across the channels in accordance with the augmented constellation signal to noise ratio SNRa[cj] and the amount that is desired to be transmitted (the xe2x80x9ctarget data ratexe2x80x9d), N. The value of this margin is varied in order to optimize it for the particular communication conditions as manifested by the measured signal to noise ratios, SNRj.
In particular, the total number of bits that may be transmitted over J channels, each characterized by signal to noise ratio SNRj, is             N      max        =                  ∑                  j          =          1                J            ⁢              xe2x80x83            ⁢              C        j              ,
where the respective cj are determined from the measured signal to noise ratios, SNRj. See, for example, xe2x80x9cDigital Communicationsxe2x80x9d by John G. Proakis, pp. 278ff for channel capacity calculations for quadrature amplitude modulation (QAM) systems, the preferred form of transmission for this invention. Preferably, the channel capacity calculations are performed in advance and stored in the form of lookup tables for rapid access. In the preferred embodiment described herein, the margin M is determined as M=(10/J)* (Nmaxxe2x88x92N). The augmented constellation signal to noise ratio is then given by SNRa[cj]=SNR[cj]+M, and this value is used to determine (e.g., by table lookup as described above) the number of bits that can be transmitted over a channel. By augmenting the constellation signal to noise ratio, SNR[cj], rather than the channel signal to noise ratio, SNRj, fewer additions are required, since the range of constellation sizes (e.g., cj=1 . . . 15) is typically smaller than the range of channels (e.g., j=1 . . . 256).
As long as the amount of data that can be transmitted over the channels in a given interval differs (as determined by the calculations just described) from the amount of data desired to be transmitted in that interval, i.e., Nmaxxe2x89xa0N, and assuming that certain other exit conditions have not been satisfied, the receiver cycles through a loop that repeatedly adjusts the margin M and recalculates Nmax. To do this, the receiver sets a high margin threshold MH and a low margin threshold ML. During those superframes in which the bit allocation table is to be recalculated, the high threshold and low threshold margins are initialized to either a first state (ML=0, MH=(10/J)*[Nmaxxe2x88x92N]) or a second state (ML=0, ML=(10/J)*[Nmaxxe2x88x92N]) dependent on whether Nmax is greater than N or less than N.
Thereafter, in each iteration, either the high or the low margin is adjusted in the search for the condition in which Nmax=N. Specifically, at the beginning of subsequent (non-initialization) iterations, the margin is set to the average of the high and low margin thresholds, M=(MH+ML)/2, and the augmented constellation signal to noise ratio SNRa[cj], the bit allocation table B[j], and the calculated capacity Nmax are determined.
If the calculated capacity exceeds the desired capacity, i.e., Nmax greater than N, the receiver increases the low margin threshold margin to M, i.e., it sets ML=M. If the calculated capacity is less than the desired capacity, i.e., Nmax less than N, the receiver decreases the high threshold, i.e., it sets MH=M. The iteration then repeats.
The receiver exits from the loop on the occurrence of any of several conditions. A first occurs when it is determined that Nmax=N. This is the desired solution, and represents an optimum equal distribution of margin over the communication channels. A second occurs when the test condition (Nmaxxe2x88x92N) is diverging. A third occurs when the desired equality is not achieved after a defined number of iterations. In one system implemented according to the preferred embodiment described herein, we have found a limit of 16 iterations sufficient.